package com.xbongbong.paas.enums.formula.enums;

import com.xbongbong.paas.enums.FieldTypeEnum;
import lombok.Getter;

import java.util.Objects;

/**
 * 业务规则适合作为公式计算的字段
 * @author 吴峰
 * @version 1.0
 * @date 2020-02-07 14:29
 * @since 1.0
 **/
@Getter
public enum RuleFormulaExplainEnum {

    /**
     *
     */
    TEXT(FieldTypeEnum.TEXT),
    // 多行文本
    TEXTAREA(FieldTypeEnum.TEXTAREA),
    //数字
    NUM(FieldTypeEnum.NUM),
    // 日期
    DATETIME(FieldTypeEnum.DATETIME),
    // 下拉框:combo
    COMBO(FieldTypeEnum.COMBO),
    // 单选按钮
    RADIO_GROUP(FieldTypeEnum.RADIO_GROUP),
    CHECKBOX_GROUP(FieldTypeEnum.CHECKBOX_GROUP),
    COMBO_CHECK(FieldTypeEnum.COMBO_CHECK),

    //用户单选
    USER(FieldTypeEnum.USER),
    // 用户多选
    USER_GROUP(FieldTypeEnum.USER_GROUP),
    // 部门单选
    DEPT(FieldTypeEnum.DEPT),
    // 部门多选
    DEPT_GROUP(FieldTypeEnum.DEPT_GROUP),
    // 地址
    ADDRESS(FieldTypeEnum.ADDRESS),
    // 流水号
    SERIALNO(FieldTypeEnum.SERIALNO),

    SUB_FORM(FieldTypeEnum.SUB_FORM),
    IMAGE(FieldTypeEnum.IMAGE),

    LINK_DATA(FieldTypeEnum.LINK_DATA),
    STAGE_THRUSTER(FieldTypeEnum.STAGE_THRUSTER),


    ;

    private FieldTypeEnum fieldTypeEnum;

    RuleFormulaExplainEnum(FieldTypeEnum fieldTypeEnum) {
        this.fieldTypeEnum = fieldTypeEnum;
    }

    public static boolean getFormulaExplain(Integer fieldType) {

        for (RuleFormulaExplainEnum ruleFormulaExplainEnum: values()) {
            if (Objects.equals(ruleFormulaExplainEnum.getFieldTypeEnum().getType(), fieldType)) {
                return true;
            }
        }
        return false;
    }
}
